package org.shiro.dao;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.shiro.entity.Permission;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
@Mapper
public interface PermissionMapper {
  /**
   * 删除
   *
   * @param id
   * @return
   */
  int deleteByPrimaryKey(Long id);

  /**
   * 添加
   *
   * @param record
   * @return
   */
  int insertSelective(Permission record);

  /**
   * 查询
   *
   * @param id
   * @return
   */
  Permission selectByPrimaryKey(Long id);

  /**
   * 更改
   *
   * @param record
   * @return
   */
  int updateByPrimaryKeySelective(Permission record);

  /**
   * 查询所有
   *
   * @return
   */
  List<Permission> selectAll();

  /**
   * 树状结构查询
   *
   * @return
   */
  List<Permission> queryByTree();

  /**
   * 父Id查找子Id
   *
   * @param id
   * @return
   */
  List<Permission> getChildByParentId(@Param("id") Long id);

  /**
   * 根据角色的Id查找权限
   *
   * @param id
   * @return
   */
  List<Permission> queryMenuByRoleId(@Param("id") Long id);
}
